﻿Imports System.IO

Namespace IO

    Public MustInherit Class GameDirectory

        Public Property PhysicalPath() As String

        Public MustOverride Function GetFiles() As List(Of String)
        Public MustOverride Function GetFiles(ByVal relativePath As String) As List(Of String)

        Public MustOverride Function GetDirectories() As List(Of String)
        Public MustOverride Function GetDirectories(ByVal relativePath As String) As List(Of String)

        Public MustOverride Function OpenFile(ByVal relativePath As String, ByVal mode As Runa.Foundation.IO.FileMode, Optional ByVal fileAccess As FileAccess = FileAccess.ReadWrite) As Stream

        Public MustOverride Function CreateDirectory(ByVal relativePath As String) As Boolean
        Public MustOverride Function DeleteFile(ByVal relativePath As String) As Boolean
        Public MustOverride Function DeleteDirectory(ByVal relativePath As String, Optional ByVal recursive As Boolean = False) As Boolean
        Public MustOverride Function FileExists(ByVal relativePath As String) As Boolean
        Public MustOverride Function DirectoryExists(ByVal relativePath As String) As Boolean

    End Class

End Namespace